System and method for community centric resource sharing based on a publishing subscription model

ABSTRACT

The invention provides a Web service which enables a publisher to share his digital resources such as an address card or a calendar with a number of subscribers based on different sharing relationships. The Web service includes a host-based interface called “My Community”, for example, with which the publisher manages the share-relationships with his community members. The community members are organized into different groups. Each group includes a number of community members who have a common sharing relationship with the publisher with respect to one or more views of the shared resources. A resource may have multiple views. Each of the views has Metadata describing sharing-styles, as well as version, creation date, size, and the like. Each sharing style corresponds to a specific sharing relationship between a community member and the publisher.

CROSS REFERENCE TO RELATED APPLICATION

This application is a continuation of U.S. patent application Ser. No. 12/784,737, filed May 21, 2010, which is a continuation of U.S. patent application Ser. No. 10/606,021, filed Jun. 24, 2003, all of which are incorporated herein in their entirety by this reference thereto.

BACKGROUND OF THE INVENTION

1. Technical Field

The invention relates generally to Internet based information sharing technology. More particularly, this invention relates to a system and method for providing a scheme for dynamic Web service which enables registered users to interactively share their digital resources with other registered users and non-registered users based on categorized sharing relationships with respect to different views of the digital resources.

2. Description of the Prior Art

The development of Internet technology has provided a vast new world of resource sharing. Digital files, such as text, photos, and audio/video programs, can be shared with almost any number of designated recipients in just a few seconds via e-mail. News, magazines and other resources can be digitally delivered from a central repository to many users based on subscription policies. Internet service providers now provide group e-mail services in which a registered user subscribes a service or services in connection with a specific group or several groups. Some other companies provide Internet based solutions to automatically update address book or contact information.

One such service, for example, is “Yahoo! Group” (http://groups.yahoo.com/), which provides an easy way for groups of people to communicate on the Internet—discussing sports, health and current events with a group of people, sharing photos and files, planning events, sending newsletters; and staying in touch with friends and family. To start a group, the user needs first to select a “Yahoo! Groups Category” by browsing or searching for the category that best describes his group. Then, the user needs to describe his group. This includes giving a “group name”; entering the group's e-mail address and giving a brief description about the group. When the user sends a message to the group e-mail address, all members of this group receives a copy of the message. A recipient of the message can unsubscribe from the group messages by returning an e-mail or clicking a URL embedded in the message.

Plaxo, Inc.(www.plaxo.com), for example, has developed an address book updating application which enables a user to automatically update his address books. Immediately after the user downloads the application, he is prompted to choose which people from his address book he wants to get updated contact information from. The user may choose as many people as he likes. The application then, on behalf of the user, sends out a simple message to each of the selected people, showing the contact information the user currently has in his address book on them and requesting them to correct the out-of-date information. The replies to these e-mails are processed by the application and automatically inserted into the user's address book. The user receives notifications from Plaxo as the updates replies come in. The user can also use Plaxo to send his own updated contact information to the selected people in his address book. Plaxo allows the user to create two cards, i.e. a business card and a personal card, so that the user can offer different information to different people. Once the user creates his cards, he can send them to anyone in his address book. If they are not Plaxo members, they will receive an e-mail containing the user's card. If they are Plaxo members and the user is in their address books, they receive a message asking them if they want to add the user. As friends and contacts join Plaxo, the user is automatically kept up-to-date without e-mails. The user's address book is automatically updated with the latest contact information of his friends and contacts that join Plaxo. This synchronization happens automatically on a daily basis as long as Outlook is running. The major weakness of Plaxo's solution is that until people download and use Plaxo, requests for contact information arrive in the form of e-mail, which may be construed as spam because it simply asks people for their information.

GoodContacts (www.goodcontacts.com) provides a solution to help a user to send a short e-mail message to the people that the user selects in his address book for verification. The e-mail incorporates a snapshot of the business card information the user has about them and asks them to review that information, make sure it is accurate, change it if it is wrong, and add anything that is missing. When they do so, the GoodContacts software updates the user's address book with the new information automatically. The user has the control to select the contacts he wants to verify. No e-mails are sent by the GoodContacts software without the user actively choosing to do so. To personalize the GoodContacts e-mails to be sent out, the user can choose to use the text in one of the standard templates that comes with the software, or he can personalize the message and subject header to his taste. He can also purchase a customized template that incorporates his or an organization's logo and colors in every keep-in-touch e-mail he sends. The GoodContacts software currently interfaces with Outlook, Outlook Express and ACT!. It does not store users' address books and thus unauthorized persons cannot access a user's address book and send spam to the user's contacts. The major weakness of the GoodContacts solution is its lower level automation because it has a very complicated setting feature, offering a suite of options for frequency of update requests, privacy settings, and sending requests to alternate e-mail addresses. Further, like Plaxo, until people download and use the software, requests for contact information arrive in the form of e-mail, which may be treated as spam.

AddresSender (www.addressendercorn) is a Web-based anywhere-accessible address book service that offers automatic updates within their network as well as synchronization capability with desktop PIMs. It forms links between one user and other AddresSender users to create a network and automatically sends and receives updates within the network. AddresSender's address book synchronizes with the user's Outlook (or OE or ACT!) contact list. It enables the user to send his information to his contacts. The user's in-network contacts get updates automatically; others get e-mails or even physical postcards. Unlike Plaxo and GoodContacts, AddresSender does not automatically import contact information for anybody except other users in the AddresSender network.

CardScan (www.cardscan.com/accucard) offers scanners and text-recognition software for transferring business cards into the user's electronic address book. The software is bundled with AccuCard Service with a functionality to confirm the accuracy of contact information and keep the user's entire address book up-to-date automatically. Like Plaxo, the AccuCard Service stores address information on a central server. On a quarterly basis, the AccuCard asks the user's contacts to confirm or update their information. It reminds the user whether a contact in his address book is out-of-state (i.e. if there is new information for that contact on the AccuCard server). The user must view the updates and accept or reject the changes for that contact. AccuCard allows the user to choose whether to reveal his identity or include a personal message with requests for updates. It stores images of business cards as well as the information therein.

CardScan is compatible with Microsoft Outlook, ACT!, Lotus Notes, and over 30 more contact managers. It synchronizes with any Palm, Handspring or Sony handheld, most Pocket PCs and the web. No matter where the user keeps his contact information, it can be up-to-date all the time. The primary weakness of this system is in privacy and control. For example, few controls are offered for distribution of information. Data need not originate with the contact himself, and updates are distributed to anyone who held the card originally. Update requestors need not reveal their identities though CardScan recommends that disclosing the requestor's name yields a better response rate. While this may be effective for a business application, it is not conducive to sharing personal information.

Now-defunct Ants.com developed a product called Scout for keeping address books up-to-date. It stores a user's “business card” information in a central database, and other Scout users who have that user's e-mail address could get the user's latest information automatically. Based on the e-mail address a user has, Scout automatically fills and automatically updates the user's Outlook address book with information from its database. Like several other products, Scout offers to send invitations for the user's other contacts to join. The critical weakness in Scout's model is that, although some limited restrictions can be set, it allows anyone with the user's e-mail address to get the rest of the data from the user's business card.

The approaches introduced above have many problems. For example, if a user wants to have a multiple-group sharing business, he has to set up many different groups manually and he has to spend a lot of time to manage these groups. For another example, if the user wants to send different views of a shared resource to different groups, he has to create different versions of the resource and send different versions to different groups manually. Further, when the shared resource is updated, the local copies cannot be automatically updated. Further more, the group members cannot interactively share a centric resource such as a calendar.

What is desired is a universal sharing scheme that includes the following features:

-   -   A convenient easy-to-use publishing subscription model for         sharing, which puts a publisher in control about whom to share         the resources and thus reduce privacy concerns;     -   A “My Community” centric management system, with which the         publisher shares his resources with his own community only and,         at the same time, his community is dynamically extended by         accepting non-members to join;     -   A mechanism of multiple views based sharing, which enables the         publisher to share different views of a shared resource and thus         further reduces the privacy concerns;     -   A mechanism for automatically updating the shared resource         within “My Community”;     -   A flexible sharing model, with which different sharing         relationships for different needs are defined; and     -   A mechanism for integration of agents as sharing facilitators         which enables the sharing process to be automated whenever         possible and enables different applications to provide sharing         functions.

SUMMARY

This invention provides a Web service which enables a publisher to share his digital resources with a number of subscribers based on different sharing relationships. The Web service includes an interface called “My Community”, for example, with which the publisher manages the sharing relationships with his community members. In a preferred embodiment of this invention, a community member refers to a user in a UNIX or any computer system who has an account with the system. The community members are organized into different groups. Each group includes a number of community members who have a common sharing relationship with the publisher with respect to one or more views of the shared resources. A resource may have multiple views, such as “full view” v. “basic view” v. “professional view” of a digital address card, or “normal view” v. “personal view” v. “confidential view” of a calendar. Each of the views has Metadata describing sharing styles, as well as version, creation date, size, and the like. Each sharing style corresponds to a specific sharing relationship between a community member and the publisher.

In an equally preferred embodiment, an address card service is incorporated with the existing address book technology, which enables automatic sharing and updates of address book information. Members, i.e. registered users, can share (“publish”) personal contact information, work information or/and personal notes with the people they want to stay in touch with. Those members can “subscribe” to automatically receive changes when the information is updated. The address card provides a link between members to help them stay in touch, and to keep their address books up-to-date with all the right information. The service ensures that the members always have the right contact information for their friends and family whenever they need it.

The address book is a central way for the user to share personal information and automatically keep it up-to-date. All his friends and family can always have his current contact information whenever he updates it and he never has to worry about mistyping a friend's new phone number or e-mail address to copy it into his address book because they can share it with him automatically.

Members can easily create an address card of personal and contact information. Even they can include self-expression elements such as Buddy Icon, personal/business logo, stationery, etc. Further, the member can create his address cards with different views for different audiences.

Members can share a personal address card with designated others. Sharing may take place via e-mail or a one-click communication mechanism. They can share an address card with all or part of the address book/“buddy list”, leveraging the groups and categories of people in those lists. They can also share an address card with recipients of mail messages. They can even make an address card “public,” open to subscription by any member.

Members with whom an address card is shared can accept the card to add that information to their address book. They receive automatic updates when the card is modified. They can choose to automatically accept address cards from contacts already in their address book or “buddy list” or contacts with whom they have shared. Where possible, address cards are resolved with existing entries in the subscriber's address book, using screen name and other key fields to detect duplicates.

A member can share his address card with another member (e.g. via Member Directory, Buddy Info). When a subscriber accepts, it is easy to reciprocate with a share.

When a member updates his address card, the modification is automatically reflected for subscribers with whom it is shared so that information is always up-to-date. It may include options to unsubscribe automatic updates on the publisher or subscriber side. It may also include an option to notify subscriber of updates so that new information is not missed.

Once a member has subscribed to an address card, the address card's information is available wherever the address book information is accessed. The subscriber may make edits to the local copy of the address card, but any edits are overwritten if the publisher updates the address card because the publisher's address card always contains the most up-to-date information.

The member's privacy is always protected. Policy for forwarding (i.e. passing on) another member's address card will limit or restrict the ability for forwarded cards to maintain subscriptions to the original card; original publisher must grant permission. Forwarding an invitation to request an address card affords the most control and privacy while still enabling the spread of address cards.

While the address card works best among registered members, it still supports sharing with non-members through export of standard contact card formats for a seamless sharing experience. Publishing to non-members includes e-mail based updates for published modifications.

A similar mechanism can enable sharing among a group, such as a Family, to which members can easily publish and subscribe to share updates among all members of the group.

The address card and group sharing models may be applied for sharing other member-created information and lists, such as “favorite place” and “buddy list”.

The address card system disclosed herein has numerous advantages. For example: the publisher is in control of who receives which view of the address card; users have flexible preferences for automatically publishing or automatically subscribing address cards; unlike any prior art system which focuses on a “pull” model of soliciting other users' contact information, the address card system taught herein focuses on a “push” model of sharing publishers' information, allowing recipients to simply accept; it propagates automatic updates within an existing network of registered users; furthermore, it enables the users to easily choose groups or categories with which to share.

BRIEF DESCRIPTION OF DRAWINGS

FIG. 1 is a schematic diagram illustrating an exemplary data model for a publisher's “My Community” according to this invention;

FIG. 2A is a flow model illustrating a process for resource sharing;

FIG. 2B is a flow diagram illustrating a process for resource sharing;

FIG. 3 is a schematic block diagram illustrating a sharing model where publisher's and subscriber's agents are used;

FIG. 4 is a flow diagram illustrating a process for facilitating resource sharing via agents;

FIG. 5A is a schematic diagram showing an exemplary user interface (UI) for “My address card” with the “Personal Information” tab at the front;

FIG. 5B is a schematic diagram showing the UI setup page when the “Work Information” screen is at the front;

FIG. 5C is a schematic diagram showing a manage screen of the UI;

FIG. 5D is a schematic diagram showing an exemplary preview screen with the “Personal Information” tab at the front;

FIG. 5E is a schematic diagram showing an exemplary preview screen with the “Work Information” tab at the front;

FIG. 5F is a schematic diagram showing an exemplary update screen with the “Personal Information” tab at the front;

FIG. 5G is a schematic diagram showing an exemplary update screen with the “Work Information” tab at the front;

FIG. 5H is an exemplary update confirmation pop-up;

FIG. 5I is an exemplary share confirmation pop-up;

FIG. 5J is an exemplary cancel update pop-up;

FIG. 5K is an exemplary extended cancel/share update confirmation pop-up;

FIG. 5L is an exemplary address book linked to address card;

FIG. 5M is an exemplary introduction pop-up;

FIG. 6A is an exemplary screen for member receive with the “Personal Information” tab at the front;

FIG. 6B is an exemplary screen for member receive with the “Work Information” tab at the front;

FIG. 6C is an exemplary screen for member receive with the “Notes” tab at the front;

FIG. 6D is an exemplary editable receive screen with the “Personal Information” at the front;

FIG. 6E is an exemplary “Unsubscribe Confirmation” pop-up;

FIG. 6F is an exemplary pop-up for saving the address card to a new category;

FIG. 6G is an exemplary pop-up for overwriting confirmation;

FIG. 6H is an exemplary pop-up for address card preferences settings;

FIG. 7A is an exemplary add contact screen with the “Personal Information” tab at the front;

FIG. 7B is an exemplary add contact screen with the “Work Information” tab at the front;

FIG. 7C is an exemplary add contact screen with the “Notes” tab at the front;

FIG. 7D is an exemplary pop-up for setting view levels;

FIG. 7E is an exemplary edit contact screen with the “Personal Information” tab at the front;

FIG. 7F is an exemplary edit contact screen with the “Work Information” tab at the front;

FIG. 7G is an exemplary edit contact screen with the “Notes” tab at the front;

FIG. 8A is a schematic screen showing an exemplary address card received in e-mail by a member which was sent by the sender of the address card illustrated in FIGS. 7A-7D;

FIG. 8B is an exemplary receive accept pop-up;

FIG. 9A is an exemplary e-mail receive screen with “Internet address card(s)” attachment link;

FIG. 9B is an exemplary option screen for the e-mail recipient to select the contacts he wants to add to his address book; and

FIG. 9C is an exemplary pop-up for deleting a duplicate entry.

DETAILED DESCRIPTION OF THE INVENTION

The invention provides a Web service which enables a registered member, called a publisher, to share his digital resources, such as his address card or his calendar, with a number of subscribers based on different sharing relationships. The Web service includes a user interface, called “My Community” for example, with which the publisher manages the share-relationships with his community members. In the preferred embodiment of this invention, a community member refers to a registered user in a UNIX or any computer system who has an account in the system. The community members are organized into different groups. Each group includes a number of community members who have a common sharing relationship with the publisher with respect to one or more views of the resources. A resource may have multiple views, such as “full view” v. “basic view” v. “professional view” of an address card, or “normal view” v. “personal view” v. “confidential view” of a calendar. Each of the views has Metadata describing sharing-styles, as well as version, creation date, size, and the like. Each sharing style corresponds to a specific sharing relationship between a community member and the publisher.

FIG. 1 is a schematic diagram illustrating an exemplary data model 100 for a publisher's “My Community”. In this model, the publisher 101 has three resources, i.e. “Resource X”, “Resource Y” and “Resource Z”. “Resource X” has two views, i.e. “View 1 of X” and “View 2 of X”. With respect to “View 1 of X”, there is only one member, i.e. M1, under sharing relationship “A”. However, with respect to “View 2 of X”, “Group 1”, which includes two members M2-3, is under sharing relationship “A”, and “Group 2” which includes three members M3-5, is under sharing relationship “B”. Note that a member can belong to different groups at the same time. For example, M3 belongs to both Group 1 and Group 2. After receiving the availability announcement from the publisher 101, the registered members 102 of the Web service who have not been designated as members of “My Community” send their subscription requests to the publisher 101. The non-members 103 who have not been registered with the Web service but have known the availability of the publisher's resource may also send their subscription requests to the publisher 101.

A sharing relationship defines what and how a specific group of community members can do on the shared resource during the life-span, i.e. the duration, of the sharing relationship. The life span may be “one-time only” or “ongoing”. The following are three exemplary sharing relationships:

-   -   copy_send—a group of community members access a predefined view         of a resource by receiving a copy of the view from a publisher.         For example: assuming sharing relationship “A” is “Copy_send”,         M1 receives a copy of “View 1 of X”; the Group 1 members (M2 and         M3) receive a copy of “View 2 of X”.     -   Reference_read—the group of community members read a shared         resource in a central repository such as a picture album or a         calendar. For example: assuming sharing relationship “B” is         “Reference_read”, the Group 2 members (M3, M4, and M5) can read         “View 2 of X”, “View 1 of Y” and “View 1 of Z”.     -   Reference_write—the group of community members write/update a         shared resource. For example: Assuming the sharing relationship         “A” is “Reference_write”, the Group 1 members (M2 and M3) can         update “View 2 of X”.

FIG. 2A is a flow model illustrating a process for resource sharing 200A which includes four basic steps:

-   -   Step 201: The publisher publishes an announcement to his         community members;     -   Step 202: The community members forward the announcement to         their family members or friends;     -   Step 203: Some community members and some non-members (i.e.         member's family and friends) send subscription requests to the         publisher; and     -   Step 204: The publisher approves the subscription requests.

FIG. 2B is a flow diagram illustrating a process 200B for resource sharing, which includes the following steps:

-   -   Step 211: Create a number of groups inside “My Community”. The         number of members in each of the groups may start with zero         initially.     -   Step 212: Designate a view of a sharable resource to some or all         groups based on sharing relationships.     -   Step 213: Announce the availability of the views of the sharable         resource and the sharing relationships to some or all of the         publisher's community members.     -   Step 214: Process subscription requests. The requests are         classified into different categories such as one-time sharing,         on-going sharing and the like.     -   Step 215: Check whether the requester is a community member. If         the requester is a community member, automatically approve the         request.     -   Step 216: Add the requester to a group or groups.     -   Step 217: Notify the requester that his request has been         approved.     -   Step 218: If the requester is not a community member, determine         whether to approve the request. If yes, continue on Step 216.     -   Step 219: If the request is denied, send a denial notice.

Optionally, the process may further include Step 220 to hold the status pending.

Note that the publisher's “My Community” is dynamically extended because the existing community members spread the resource sharing announcements to non community members such as friends and family members. This is illustrated by Step 221. When a non community member submits his subscription request, his identity information such as name, e-mail address and his relationship with referral members should also be provided.

Under an ongoing type sharing relationship, whenever a shared resource is modified, community members' local copies are updated accordingly. In particular, the publisher first sends a change notification to the members who subscribed to the ongoing type relationship. In one option, a subscriber's local copy of the shared resource is automatically updated. In another option, when a subscriber receives the change notification, he can choose to update the local copy, not update, or choose to block future notification. In case he chooses to block future notification, the sharing relationship is modified on the publisher's side and thus the subscriber will no longer receive the change notification.

As mentioned above, the sharing relationships are managed via both the publisher's side and the subscriber's side. On the publisher's side, he can set the sharing preferences as to the groups that a resource should be shared with and relationships that should be applied for each group. The factors concerning the sharing relationship for each resource may include the groups/members that the resource is being shared with, current sharing relationship, life-span of the relationship (ongoing or one-time), status, and rejected sharing requests. For the publisher's community management, the system maintains a list of community members and their groups, a list of pending members and a list of rejected members. On the subscriber's side, he can set the sharing preferences as to the types of announcements that should be rejected and publishers from whom publishing is automatically applied after receiving an announcement. For example, the subscriber may set to block spam and set to automatically update the local copy of some resources upon receipt of the update notification. The factors concerning the sharing relationship for each resource may include a list of resources received, current sharing relationship, life-span of the relationship (ongoing or one-time) and status.

In an equally preferred embodiment of the invention, agents for facilitating resource sharing are used. FIG. 3 is a schematic block diagram illustrating publisher's and subscriber's agents. On the publisher's side, the agent 301 is located at some host servers or user's personal computer. The agent 301 serves as a gateway for all of the publisher's applications 303 to send out publishing announcements and change notifications, and to accept all requests from publishers including his community members and their friends or family members. The agent 301 may generate automatic responses to the requests in accordance with the publisher's preferences 302 thus minimize the publisher's manual interaction. On the subscriber's side, the agent 311 is located at some host servers or user's personal computer. The agent 311 serves as a gateway for all of the subscriber's applications 313 to accept the requests from publishers such as announcements and notifications, and to accept the requests from the peer subscribers such as forwarded announcements. The agent 311 may generate automatic responses in accordance with the subscriber's preferences 312. The agent 311 may also be used to invoke the subscriber's applications for accepting sharing. For example, the agent 311 updates the subscriber's address book after receiving a modified address card as described in the following paragraphs.

FIG. 4 is a flow diagram illustrating a process for facilitating resource sharing via agents, which includes the following steps:

Step 401: A publisher uses “Publisher Management Tool” to setup preferences, community directory, and resource directory;

Step 402: The publisher uses applications to create, edit or update resources in the resource directory;

Step 403: The publisher's agent sends out publisher announcements for any new created resources and changes notification for updated resources to community members;

Step 404: The subscriber's agent accepts all requests (such as the publisher's announcement and change notification) from the publisher's agent, and automatically generates a response per the subscriber's preferences;

Step 405: The publisher's agent automatically handles the responses from the subscriber's agent and generates responses per the publisher's preferences;

Step 406: The subscriber's agent invokes the subscriber's applications for accepted sharing.

While a sharing service allows publishers to notify subscribers of their shared resources via e-mail etc., checks need to be in place to prevent this feature from being abused by spamming users. Therefore, in another equally preferred embodiment, a spam control mechanism is included. The spam control mechanism performs the following functions:

-   -   Rate limiting policies. For example, limit the number of         notifications that a sender can send in a given time interval         such as hourly, daily, weekly, and monthly.     -   Rate limiting notification to a unique receiver. For example,         limit number of notifications that a sender can send to a given         person in a given time interval.     -   Restriction on the number of publishes that can be made in one         request/transaction.     -   Restriction on notification messages, such as size and content.

Such settings should be configurable by the system administrator without bringing down the system. It is hoped that having such policies in place should act as a deterrent to spammers from misusing sharing systems.

In an equally preferred embodiment, an Internet based address card service is incorporated with an existing address book service, which enables automatic sharing and updates of address book information. The members of the service can publish personal contact information, work information or/and personal notes with the people they want to stay in touch with. Those members can subscribe to automatically receive changes when the information is updated. The address card provides a link among the members to help them stay in touch, and to keep their address books up-to-date with all the correct information. The service ensures that the members always have the right contact information for their friends and family whenever they need it. By subscribing to the service, the user's friends and family can always have his current contact information whenever he updates it and he never has to worry about mistyping a friend's new phone number or e-mail address to copy it into his address book because they can share it with him automatically. Contact information in address cards is available via any interface to the host-based address book. The address card contact information is also available offline.

A user/member can easily set up a master address card of personal and contact information based on a template or templates provided by the service provider. Optionally, the user/member may choose to create his custom address cards. He can even include self-expression elements such as a “buddy icon”, personal/business logo, stationery, etc. Based on the master address card, the user/member can create different address cards, or one address card with different views, for different audiences. If the user has more than one address card, he must indicate a default card. He can label each of his sub-cards, but the “label” itself is not published to the card subscribers. The user can edit the fields in his address cards by editing the master address card. When changes are saved, they are automatically published to subscribers of the address cards.

In a typical embodiment, the service provider provides templates from which a user/member selects sets of fields for sub-address cards. For example, the “Business” template may contain First Name, Last Name, Title, Company, Work

Address, Work Phone, E-mail, and Web Page. These fields will be pulled from the address card and published as the user's “Business Card”. Similarly, a different set of data may be pulled from the address card as the user's “Personal Contact Information”.

A member/publisher can share his address card with certain designated recipients who may then choose to subscribe. Sharing may take place via e-mail or a new “direct” one-click communication mechanism. He can share an address card with all or part of the address book/”buddy list“, leveraging “people lists”. He can also share his address card with recipients of mail messages. He can even make his address card public, open to subscription by any member. The publisher may configure an expiration period of time for a publish offer or an invitation to share.

A member/subscriber with whom an address card is shared can accept the address card to add that information to his address book, and thereafter he receives automatic updates when the card changes. He may choose to automatically accept address cards from contacts already in his address book/”buddy list” or contacts with whom he has shared. Where possible, address cards are resolved with existing entries in the subscriber's address book, using screen name and other key fields to detect duplicates.

A member/publisher can share his address card with another member through various points of the service, e.g. via e-mail, instant messenger or online status displaying system such as AOL's Member Directory, Buddy Info Badge or People List. When a subscriber accepts, it will be easy to reciprocate with a share. A member/publisher may choose to publish to contacts not in his address book. In this case, these contacts can be manually or automatically added to the address book. Conversely, if a member deletes a subscriber from his address book, the subscriber is then un-subscribed from the publisher's address card. The member can choose via member preferences to automatically publish his default address card to some or all of those in his address book. If he so chooses, an invitation to subscribe is automatically sent to the recipient.

When a member/publisher updates his address card, the modifications are automatically reflected for members with whom it is shared so that information is always up-to-date. It may include options to turn off automatic updates on the publisher or subscriber side. It may also include an option to notify the subscriber of updates so that new information is not missed. The user can view and manage accepted subscriptions. He may also view pending and rejected subscriptions. He may un-publish to subscribers and pending subscribers, i.e. break the connection or revoke the offer.

A member/user receives a share/publish offer in various forms, e.g. an immediate popup (if online), a popup at sign-on, an indicator in his address book, and an e-mail.

The member with whom an address card is shared also has different options, e.g. (1) exchange: a member subscribes to the publisher's address card and reciprocates with a publishing of his own address card (if it exists, otherwise the member has the option to set one up); (2) accept the member subscribes to the publisher's address card only; and (3) reject the member does not subscribe to the publisher's address card.

A member/subscriber to whom an address card is published can choose to accept (subscribe). The publisher's address card information is added to the subscriber's address book, and the subscriber then receives automatic updates of modifications to the publisher's address card. A member must subscribe in order to accept address card data. He cannot just accept once without making the publish/subscribe connection. The member who has subscribed may later choose to unsubscribe.

A member/subscriber can specify whether published modifications to an address card to which he has subscribed may trigger a notification. He can also choose a notification method. He can specify whether each address card to which he has subscribed merits notification upon modification on a per-card basis. Notification may include details of specific changes made to the address card. The subscriber may choose to lock certain fields in an address card to which he has subscribed. This may prevent overwriting that field with any changes made by the publisher.

A member/subscriber can choose via member preferences to automatically accept an address card that is published to him. This means that the member automatically subscribes to any address card that is published to him. He can automatically accept address cards from the entire address book or the “buddy list”. In that case, anybody listed in the member's address book or “buddy list” at a given moment is accepted automatically by the member when any of them publishes his address card.

Once a member/subscriber has subscribed to an address card of another member's, the address card's information is available wherever address book information is accessed (Mail, YGP, etc.). The subscriber may make edits to the “local” copy of the address card, but any edits are then overwritten if the publisher updates the address card because the publisher's address card always contains the most up-to-date information. If the member subscribes to multiple cards from the same publisher, these cards are merged as a single entry in the subscriber's address book. If an existing contact in the subscriber's address book has the same screen name and/or e-mail address as an address card to which he is subscribing, a duplicate is detected and the subscriber is prompted to an option whether to delete the duplicate. If the address card contains a superset of the duplicate entry, the existing entry is then replaced by the address card. Superset means that the content in all fields in the existing entry are matched exactly by the contents of the fields within the address card, and that the address card may also contain some additional fields where the existing entry is blank. If the address card intersects with an existing entry but is not a superset, the subscriber has the option to overwrite the existing entry with the received address card, or to keep them separate.

The member/subscriber can unsubscribe from an address card at any time. After the member has unsubscribed, he receives no further updates but the information he has already received remains in his address book as-is. If the subscriber deletes an address card to which he has subscribed, his subscription is eliminated accordingly.

While the address card works best among registered members, it still supports sharing with non-members through the export of standard contact card formats for a seamless sharing experience. Publish/subscribe for non-members includes e-mail based updates for published modifications. If a member/publisher chooses to publish his address card to a non-member contact, the non-member contact then receives a notification of the publication via e-mail with information embedded and a vCard attached that contains the member's address card information. The publisher can insert a personal note in the e-mail generated on an initial publish (This also applies to any mails sent to members). In the published e-mail sent to a non-member, the non-member can opt-in (subscribe) to future address card modifications via a link in the e-mail. If the non-member opts in, any modification made to the address card then generates an e-mail to him with updated information embedded and the vCard attached. Each update e-mail offers the ability to opt out (unsubscribe).

A similar mechanism can enable sharing among a group, such as a family, to which members can easily publish and subscribe to share updates among all members of the group. The address card and group sharing models may be applied for sharing other member-created information and lists, such as “favorite places” and “buddy list”.

When a member/subscriber forwards an address card to a third party, the recipient receives a publish offer. Accepting the offer forms a publish/subscribe connection between the original publisher and the recipient. The original publisher is accordingly notified when the recipient has subscribed. Optionally, the original publisher is prompted to give permission to the recipient in order for a connection to be formed. The original publisher can set permissions on an address card, preventing subscribers from forwarding it. Default is to allow forwarding.

When a member/publisher sets a preference to automatically publish his address card to anybody to whom he sends mail, his default address card is published (unless otherwise specified). On a per-message basis, the member can choose whether his address card is automatically published to the mail recipient(s).

A member/subscriber can set a preference to automatically subscribe to anybody to whom he sends an e mail, if that contact is implicitly published. If the publisher publishes on “mail send”, the recipient must be able to subscribe when he reads that mail. If the recipient/member chooses to “Add Sender to Address Book,” he automatically subscribes to the sender's (publisher's) address card. Optionally, the recipient/member may choose to reciprocate with a publication to the sender.

The address card comprehends the parent control settings on the publisher side. Children do not have access to the address card. Young teens are prevented from publishing a public address card.

These are further illustrated by exemplary screens and pop-ups of a user interface (UI) implementing above described scheme.

FIG. 5A is a schematic diagram showing an exemplary UI for “My address card” 500 a with the “Personal Information” tab 510 brought to the front. The user's setup page of the UI includes: a “Personal Information” tab 510, which is an area where a member, i.e. publisher, enters information about himself; a “Work Information” tab 520 which can be brought to the front when it is clicked; a “screen name” mark 511, which is permanent, i.e. hard-coded; a virtual “Save” button 512, which is used to save the entered data when it is clicked; a “Cancel” button 513; a “Preferences” button 514, from which the user may set his preferences; and a “Help” button 515, from which the user accesses to instructional information. The publisher's preferences may include options such as “auto-publish to his Address Book/Buddy List as contacts added”, or “do not auto-publish”. If the publisher chooses to set up “auto-publish”, any member (account holder) registered with the Web service may subscribe to his address card.

FIG. 5B is a schematic diagram showing the UI setup page 500 b when the “Work Information” screen 520 is brought to the front. From this page, the user enters his work information and saves it by clicking the save button 512.

FIG. 5C is a schematic diagram showing the UI manage screen 500c. An informational text 530 is shown below “My address card—Manage”, which communicates a message that all subscribers will receive updated information when the “Update” button in the update screen of FIG. 5F is clicked. The “Look Up” window 531 allows the user to find subscribers by name. The views dropdown menu 532 shows all category names from a current category list in the address book as shown in FIG. 5L. The drop down menu also includes a “default to all” option and follows address book defaults and hierarchy, for example: All→Co-workers, Family and Friends→Auto-added, Uncategorized→Manage. The “Column Headers” 533, such as Contacts, Primary e-mail, Personal Information, Work Information, All

Information, None, Accepted, are used to set up specific views of the sharable address card. When a header is clicked, columns sort according to the criteria chosen. For example, when Primary E-mail header is clicked all those subscribers to Primary E-Mail information will shuffle to the top. Each of the preview links 534 invokes a view of that view-type, on top of, but offset to screen views shown in FIGS. 5D and 5E.

FIG. 5D is a schematic diagram showing an exemplary preview screen 500e with the “Personal Information” tab 510 at the front. FIG. 5E is a schematic diagram showing an exemplary preview screen 500f with the “Work Information” tab 520 at the front. In the preview screens, the previously entered information is static and uneditable. Note that preview of information depends on what privileges a member gives recipients of card. For example, the “All Info” view covers “E-mail contact”, “Personal”, “Work” and details; the “Work Info” view covers “E-mail contact” and work information; the “Personal Info” view covers “E-mail contact” and Home information and details; and the “Primary E-mail” view only covers username and e-mail address.

By clicking the “Edit” button 541, the user is prompted to “My address card Update” (FIG. 5F and FIG. 5G) and the preview screen closes at the same time. Otherwise, by clicking the cancel button 542, the screen is closed.

FIG. 5F is a schematic diagram showing an exemplary update screen 500g with the “Personal Information” tab 510 at the front. FIG. 5G is a schematic diagram showing an exemplary update screen 500h with the “Work Information” tab 520 at the front. After editing the information in the cards, the user clicks the “Update” button 561 whereby he is prompted to a confirmation card as shown in FIG. 5H. By clicking the “Update Contacts” link 562, the user returns to the manage screen of FIG. 5C. Otherwise, by clicking the cancel button 563, the update screen is closed and no edits or updates are accepted.

Now referring back to FIG. 50, the manage screen 500c, where the “Edit My address card” link 536 takes the user to the update screens as shown in FIG. 5F and FIG. 5G.

By clicking the “Add a Contact” link 537, the user is returned a screen for adding a new contact to the address book as shown in FIG. 6A. The “Select All” button 538 enables the user to check the entire row by a single click.

The “OK” button 535 in FIG. 5C takes the user to a confirmation card with different appearances depending on the settings. For “send only”, the “OK” button 535 takes the user to a confirmation-send card as shown in FIG. 51, which includes the names from the manage screen of FIG. 5C that this address card will be sent to. In FIG. 51, the user cannot act on names in the name list. By clicking the “OK” button 573, the address card is sent to the designated recipients via pre-populated e-mail. If the personal note field 572 is filled out, the information therein is sent to the recipients at the same time.

Still in FIG. 5C, the “OK” button 535 may take the user to a confirmation-cancel updates tab 575 as shown in FIG. 5J, which includes the names from the manage screen of FIG. 50 that this address card will stop sending updates to. In FIG. 5J, the user cannot act on the names in the list. Clicking on the “OK” button 576 breaks the link to the named subscribers and closes the screen. If this is the user's first time sending an address card, then a preferences screen as shown in FIG. 6H is invoked. The “OK” button 576 closes the manage screen of FIG. 5C as well. The “Cancel” button 577 closes the screen 575 and returns the user to the manage screen 500 c of FIG. 50, and thus no subscriptions are cancelled,

The “OK” button 535 in FIG. 5C may take the user to an extended confirmation-cancel updates screen 578 as shown in FIG. 5K, which is a combination of the cards of FIG. 5I and FIG. 5J. The card includes a cancel list box 579 and a send (share) box 580. The cancel list 579 contains the names from the manage screen in FIG. 5C that this address card will stop sending updates. The send list box 580 contains the names from the manage screen in FIG. 5C that this address card will be sent to. The names box 579 and box 580 are not editable, i.e. the user cannot act on them. When the “OK” button 582 is clicked, the address card is sent to the designated recipients via pre-populated e-mail. If the personal note field 581 is filled out, the entered data is also sent to the recipients. If this is the user's first time sending an address card, then a preferences screen as shown in FIG. 6H is invoked.

The address card is incorporated into an existing address book scheme. FIG. 5L is a schematic diagram showing the address book screen 590 with an address card button 591. If the user does not have an address card set up, the button 591 takes the user to the introduction screen 595 as shown in FIG. 5M. The screen 595 provides a link 596 for creating “My address card”.

FIGS. 6A, 6B and 6C are schematic diagrams showing screens of a sender's address card received by a user. FIG. 6A is a screen for member receive 600 a with the personal information tab 610 at the front. FIG. 6B is a screen for member receive 600 b with the work information tab 620 at the front. FIG. 6C is a screen for member receive 600 c with the notes tab 630 at the front. The personal information tab 610 and the work information tab 620 also include a “Map It” link 601, which takes the user to a map request for location and/or driving directions. The “Edit” button 602 in FIG. 6A invokes an editable receive screen 600d as shown in FIG. 6D. Similarly, the “Edit” button 602 in FIG. 6B and FIG. 6C invokes an editable work information receive screen and an editable note screen respectively. The “Block Updates” button 603 in FIGS. 6A, 6B and 6C invokes an “Unsubscribe Confirmation” tab 650 as shown in FIG. 6E. The “OK” button 651 blocks further updates to this address card.

Referring to FIG. 6D, where the category dropdown 641 shows all categories that this address card is saved hereunder. If the user chooses to add the saved card to a new category, he is returned a small tab 660 as shown in FIG. 6F. The “Add” button 661 adds a new category name and puts the new category at the top of the drop down list. The “Save” button 642 in FIG. 6D saves all information and takes the user to an over write confirmation screen 670 as shown in FIG. 6G. The “OK” button 671 accepts all changes made by the user and closes the screen.

FIG. 6H is a schematic diagram showing a preferences screen 680, which is part of the address card settings. Note that the preview link 681 invokes the preview of the address card as shown in FIG. 5D.

Now referring back to FIG. 5L, if a user has already set up his address card, the user can get to the “Add a Contact” screen either by clicking the “Add” button 592, or by clicking the “address card” button 591 which takes him to the manage screen in FIG. 5C, where he can select the “Add a Contact” 515. Either way, the user is returned a screen 700 a, as shown in FIG. 7A, for adding a new contact's information. The contact's personal information is added into the “Personal Information” card 710. The contact's “Work Information” is added when the corresponding “Work Information” card 720 is brought to the front of screen 700 b as shown in FIG. 7B. The contact's “Notes” is added when the corresponding “Notes” card 730 is brought to the front of screen 700 c as shown in FIG. 7C.

In the screens 700 a-700 c, the hyperlink “Send My address card to this Contact” 701 takes the user to a “What Info do You Want to Share” screen 740 as shown in FIG. 7D. The hyperlink 701 only appears after the user has entered either a Screen Name or E-mail address and clicked “Save” button 702, which takes the user back to the address book as shown in FIG. 5L. In FIG. 7D, the default is always the same as the level of information being received. For example, if the user A shares “Work Information” with user B, the default for this screen is the “Work Information”. The preview link 741 opens the view screen 600 a as shown in FIG. 6A.

Now referring back to FIG. 5L again, where the user highlights a screen name and then clicks the “Edit” button 593, which takes the user to the updating screen as shown in FIGS. 7E, 7F and 7G. The buttons and hyperlink have the same function as those in FIGS. 7A, 7B and 7C.

FIG. 8A is a schematic screen showing an exemplary address card received in e-mail by a member which was sent by the sender of the address card illustrated in FIGS. 7A, 7B and 7C. The screen 800 includes a hyperlink 801 which invokes the “What Information do You Want to Share” screen 740 as shown in FIG. 7D. The screen also includes a hyperlink 802 which invokes the “address card Added to address book” tab 810 as shown in FIG. 8B.

When the recipient of the e-mail screen 800 clicks the “accept and share” link 801, and, if he chooses to share his “Personal Information” or “Work Information” and clicks “Send” button 742, the sender of the e-mail screen 800 (i.e. the publisher who sends his address card initially) will receive an e-mail as illustrated in FIG. 9A. The e-mail screen 900 includes an “Internet address card(s)” attachment link 901, which invokes an option screen 910 as shown in FIG. 9B for the e-mail recipient to select the contacts he wants to add to his address book. If only one address card is attached, when the link 901 is clicked, the attached card is automatically added to the recipient's address book and a non-editable receive view is invoked.

Now referring to FIG. 9B, the “Remove” button 911 removes the highlighted name from “Add to address book” list 912 and puts it back into the “Do Not Add” list 913. The “Add” button 914 adds the highlighted name to the list 912. The “Add All” button 915 adds all names in the list 913 to the list 912. If a duplicate entry is detected then a “Duplicate Message” pop-up 920 is invoked as shown in FIG. 9C, whereby the user can choose to update the existing information or create a new address card.

Terminology

-   -   Address book—a host-based data base associated with a registered         user's account in a Web service, containing the data, such as         the names and e-mail addresses, of the user's contacts.     -   Member—a registered user who has an account with a Web service.     -   “My Community”—A group of peer members of a Web service         associated with a publishing member based on a         publishing-subscribing relationship. “My Community” can be         represented by an icon, a hyperlink, a folder or what ever         wherein the community members are further organized into         different groups based on categorized sharing relationships.     -   Member of “My Community”/community member—a registered user who         has been designated by another registered user as a member of         the latter's “My Community”. The former is called “subscriber”         and the latter is called publisher because the former subscribes         one or more digital resources from the latter based on         predefined sharing relationships. Both the subscriber and the         publisher, in most circumstances, are registered users of the         same Web service.     -   Publisher—a registered user who publishes one or more digital         resources to others.     -   Subscriber—any registered user, other than the publisher, who         may subscribe or has subscribed one or more digital resources         from the publisher.     -   Non-subscriber user—a user who has not yet been registered with         the Web service. A non-subscriber user may send a request to a         registered user/publisher for subscription of a shared resource         and may establish a limited sharing relationship with the         publisher.     -   Resource—Anything which can be shared by users through Internet         access.     -   Views—Different versions of a resource. Information contained in         different views is at least partially different.

Although the invention is described herein with reference to the preferred embodiment, one skilled in the art will readily appreciate that other applications may be substituted for those set forth herein without departing from the spirit and scope of the present invention.

Accordingly, the invention should only be limited by the Claims included below. 

1. A system for sharing digital resources of a publisher through a web service, the system comprising: one or more processors; and one or more memories operatively coupled to at least one of the one or more processors and having instructions stored thereon that, when executed by at least one of the one or more processors, cause at least one of the one or more processors to: receiving a selection of a digital resource to share; determining a list of one or more users or one or more groups with which the digital resource may be shared; sending the list over the web service for display to the publisher; receiving a first selection from the publisher of a first user or a first group, wherein the first selection indicates that the digital resource is to be shared with the first user or the first group; sending a list of views for the digital resource; receiving a second selection of a view from the publisher, wherein the second selection indicates a view to include in the first sharing relationship; storing a first sharing relationship between the first user or the first group and the digital resource based on the second selection; sending an indication of the first sharing relationship to the first user or the first group; receiving a request for the digital resource from a requesting user; determining whether an existing sharing relationship authorizes the requesting user to retrieve the digital resource; and in response to the requesting user being authorized to retrieve the digital resource, sending a view of the digital resource to the requesting user.
 2. A method of sharing digital resources of a publisher through a web service, the method comprising: receiving a selection of a digital resource to share; determining a list of one or more users or one or more groups with which the digital resource may be shared; sending the list over the web service for display to the publisher; receiving a first selection from the publisher of a first user or a first group, wherein the first selection indicates that the digital resource is to be shared with the first user or the first group; and storing a first sharing relationship between the first user or the first group and the digital resource.
 3. The method of claim 2 further comprising: sending an indication of the first sharing relationship to the first user or the first group.
 4. The method of claim 2 further comprising: receiving a request for the digital resource from a requesting user; determining whether an existing sharing relationship authorizes the requesting user to retrieve the digital resource; and in response to the requesting user being authorized to retrieve the digital resource, sending a view of the digital resource to the requesting user.
 5. The method of claim 2 further comprising: sending a list of views for the digital resource; receiving a second selection of a view from the publisher, wherein the second selection indicates a view to include in the first sharing relationship.
 6. The method of claim 5 further comprising: receiving a request for the digital resource from a requesting user; determining whether an existing sharing relationship authorizes the requesting user to retrieve the digital resource; and in response to the requesting user being authorized to retrieve the digital resource, sending a view of the digital resource to the requesting user.
 7. The method of claim 5 further comprising: receiving a third selection of a second user or a second group from the publisher, wherein the third selection indicates that the digital resource is to be shared with the second user or the second group; and storing a second sharing relationship between the second user or the second group and the digital resource.
 8. The method of claim 7 further comprising: receiving a fourth selection of a view from the publisher, wherein the fourth selection indicates a view to include in the second sharing relationship.
 9. The method of claim 2 further comprising: receiving a third selection of a second user or a second group from the publisher, wherein the third selection indicates that the digital resource is to be shared with the second user or the second group; and storing a second sharing relationship between the second user or the second group and the digital resource.
 10. The method of claim 2, wherein the digital resource is a calendar.
 11. The method of claim 2, wherein the list includes a plurality of members of the web service.
 12. The method of claim 2, wherein the first selection from the publisher indicates that the digital resource should be available to the public.
 13. A method of controlling the sharing of a digital resource of a publisher through a web service, the method comprising: sending, to the web service, a selection of a digital resource to share through the web service; receiving a list of one or more users or one or more groups that the digital resource may be shared with; selecting a user or a group to share the digital resource with; sending an indication the selected user or group to the web service for the creation of a sharing relationship between the user or the group and the digital resource.
 14. The method of claim 13 further comprising: receiving a list of one or more views associated with the digital resource; sending an indication of a view to the web services for inclusion in the sharing relationship, wherein the view of the digital resource is to be shared with the user or the group.
 15. The method of claim 13, wherein the group to share the digital resource with is the public.
 16. The method of claim 13, wherein the digital resource is a calendar.
 17. A non-transitory computer-readable medium encoded with a computer program for controlling the sharing of a digital resource of a publisher through a web service, the computer program comprising instructions for: sending, to the web service, a selection of a digital resource to share through the web service; receiving a list of one or more users or one or more groups that the digital resource may be shared with; selecting a user or a group to share the digital resource with; and sending an indication the selected user or group to the web service for the creation of a sharing relationship between the selected user or group and the digital resource.
 18. The computer readable medium of claim 17, the computer program further comprising instructions for: receiving a list of one or more views associated with the digital resource; sending a selected view to the web services for inclusion in the sharing relationship, wherein the selected view indicates a view to be shared with the user or the group.
 19. The computer readable medium of claim 17, wherein the digital resource is a calendar.
 20. The computer readable medium of claim 19, wherein the digital resource is a calendar. 